package com.rw.coco.api.data.persistence.simple;

import com.rw.coco.api.data.model.CharacterModel;
import com.rw.coco.api.data.persistence.CharacterMapper;

import java.util.List;

/**
 * 简单实现CharacterMapper类
 * 注意，如果实现这个类，则不保证调用原子性
 */
public abstract class SimpleCharacterMapper implements CharacterMapper, BaseSimpleMapper<CharacterModel> {
    /**
     * 获取当前用户所使用的角色
     *
     * @param id 角色的ID
     */
    @Override
    public CharacterModel getCharacter(int id) {
        return selectOne(id);
    }

    /**
     * 获取一个用户的所有角色
     *
     * @param userId 用户的ID
     */
    @Override
    public List<CharacterModel> getAllCharacters(String userId) {
        CharacterModel select = new CharacterModel();
        select.setUserId(userId);
        return selectList(select);
    }

    /**
     * 删除指定的角色
     *
     * @param characterId 角色的ID
     */
    @Override
    public void deleteCharacter(int characterId) {
        delete(characterId);
    }

    /**
     * 新增一个角色
     *
     * @param insert 新增的角色信息
     * @return 新增角色的ID
     */
    @Override
    public int insertCharacter(CharacterModel insert) {
        insert(insert);
        return insert.getCharacterId();
    }

    /**
     * 设置昵称
     *
     * @param characterId 角色ID
     * @param nick        昵称
     */
    @Override
    public void setNick(Integer characterId, String nick) {
        CharacterModel updateData = new CharacterModel();
        updateData.setCharacterId(characterId);
        updateData.setNickname(nick);
        update(updateData);
    }
}